package gui;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import controle.ControleProduto;
import entidades.Produto;

public class TelaProduto extends JFrame {

	private JPanel contentPane;
	private JTextField tfProduto;
	private JTextField tfValorProduto;
	private JTextField tfQtdProduto;
	private JTextField tfTipProduto;
	private JTextField tfCodProduto;
	private JButton btnCancelar,btnSalvar,btnNovo,btnExcluir;
	private ControleProduto controleProduto;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					TelaProduto frame = new TelaProduto();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public TelaProduto() {
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 455, 400);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		
		JLabel lblNomeProduto = new JLabel("Nome Produto");
		
		tfProduto = new JTextField();
		tfProduto.setColumns(10);
		
		JLabel lblValorProduto = new JLabel("Valor Produto");
		
		tfValorProduto = new JTextField();
		tfValorProduto.setColumns(10);
		
		JLabel lblQtdproduto = new JLabel("Qtd Produto");
		
		tfQtdProduto = new JTextField();
		tfQtdProduto.setColumns(10);
		
		JLabel lblTipoProduto_1 = new JLabel("Tipo Produto");
		
		tfTipProduto = new JTextField();
		tfTipProduto.setColumns(10);
		
		JLabel lblCodigoProduto = new JLabel("Codigo Produto");
		
		tfCodProduto = new JTextField();
		tfCodProduto.setColumns(10);
		
		btnCancelar = new JButton("Cancelar");
		btnCancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dispose();
			}
		});
		
		btnSalvar = new JButton("Salvar");
		btnSalvar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				 Produto produto = new Produto();
				 ControleProduto controleProduto = new ControleProduto(); 
				 produto.setNomeProduto(tfProduto.getText());
				 produto.setQtdProduto(Integer.parseInt(tfQtdProduto.getText()));
	             produto.setTipoProduto(tfTipProduto.getText());
	             produto.setValorProduto(Integer.parseInt(tfValorProduto.getText()));
	             JOptionPane.showMessageDialog(null,"Pedido salvo com sucesso");
	             controleProduto.salvarProduto(produto);
                 controleProduto.fecharSessao(produto);
			}
		});
		
		btnNovo = new JButton("Novo");
		btnNovo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				tfProduto.setText("");
				tfQtdProduto.setText("");
				tfTipProduto.setText("");
				tfValorProduto.setText("");
				tfCodProduto.setText("");
				btnSalvar.setEnabled(true);
				
			
			}
		});
		
		btnExcluir = new JButton("Excluir");
		btnExcluir.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				ControleProduto controleProduto = new ControleProduto();
				
				Produto produto = new Produto();
				produto= (Produto) controleProduto.pesquisarPorNomeUnico(tfProduto.getText());
				controleProduto.deletarProduto(produto);
				tfProduto.setText("");
				tfQtdProduto.setText("");
				tfTipProduto.setText("");
				tfValorProduto.setText("");
				tfCodProduto.setText("");
				btnSalvar.setEnabled(false);
				JOptionPane.showMessageDialog(null,"Formulario excluido com sucesso!");
			}
		});
		GroupLayout gl_contentPane = new GroupLayout(contentPane);
		gl_contentPane.setHorizontalGroup(
			gl_contentPane.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_contentPane.createSequentialGroup()
					.addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING)
						.addGroup(gl_contentPane.createSequentialGroup()
							.addContainerGap(43, Short.MAX_VALUE)
							.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
								.addGroup(gl_contentPane.createSequentialGroup()
									.addComponent(lblNomeProduto)
									.addPreferredGap(ComponentPlacement.RELATED)
									.addComponent(tfProduto, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
								.addGroup(gl_contentPane.createSequentialGroup()
									.addComponent(lblValorProduto)
									.addPreferredGap(ComponentPlacement.RELATED)
									.addComponent(tfValorProduto, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
								.addGroup(gl_contentPane.createSequentialGroup()
									.addGap(7)
									.addComponent(lblTipoProduto_1)
									.addPreferredGap(ComponentPlacement.RELATED)
									.addComponent(tfTipProduto, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))))
						.addGroup(Alignment.LEADING, gl_contentPane.createSequentialGroup()
							.addComponent(btnNovo)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(btnExcluir)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(btnSalvar)))
					.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
						.addGroup(gl_contentPane.createSequentialGroup()
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(btnCancelar)
							.addContainerGap(153, Short.MAX_VALUE))
						.addGroup(Alignment.TRAILING, gl_contentPane.createSequentialGroup()
							.addGap(22)
							.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
								.addComponent(lblCodigoProduto)
								.addComponent(lblQtdproduto))
							.addPreferredGap(ComponentPlacement.RELATED)
							.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING, false)
								.addComponent(tfQtdProduto, 0, 0, Short.MAX_VALUE)
								.addComponent(tfCodProduto, GroupLayout.DEFAULT_SIZE, 75, Short.MAX_VALUE))
							.addGap(59))))
		);
		gl_contentPane.setVerticalGroup(
			gl_contentPane.createParallelGroup(Alignment.LEADING)
				.addGroup(gl_contentPane.createSequentialGroup()
					.addGap(26)
					.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
						.addComponent(btnNovo)
						.addComponent(btnExcluir)
						.addComponent(btnSalvar)
						.addComponent(btnCancelar))
					.addGap(53)
					.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblNomeProduto)
						.addComponent(tfQtdProduto, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(lblQtdproduto)
						.addComponent(tfProduto, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addGap(18)
					.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblValorProduto)
						.addComponent(lblCodigoProduto)
						.addComponent(tfCodProduto, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(tfValorProduto, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addGap(18)
					.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
						.addComponent(lblTipoProduto_1)
						.addComponent(tfTipProduto, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
					.addContainerGap(154, Short.MAX_VALUE))
		);
		contentPane.setLayout(gl_contentPane);
	}
}
